
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <stdint.h>
#include <syslog.h>
#include <stddef.h>


#include <zlog.h>
#include <zlog_util.h>

#include "plcgw_cfg.h"

zlog_category_t *psyslog_cat;


int init_syslog_by_zlog(const char *cfg_file)  // ZLOG_CONF_FILE
{
	char buf[128];
	sprintf(buf, "%s%s", APP_DATA_PATH, cfg_file);
	int ret_init = zlog_init(buf);
    if (ret_init) {
        printf("zlog init failed.......\n");
        return -1;
    }

    // 初始化一个日志记录器
    psyslog_cat = zlog_get_category("class");
    // 如果成功，返回 zlog_category_t 的指针；失败返回 NULL
    if (!psyslog_cat) {
        printf("zlog get category failed\n");
		
        zlog_fini();
        return -1;
    }

    // 记录日志，zlog_fatal/error/warn/notice/info/debug
    //zlog_info(psyslog_cat, "syslog by zlog start!");
	//zlog_fatal(psyslog_cat, "fatal....!");

	return 0;
}

int zlog_info_pro(const char *fmt, ...)
{
	va_list args;
    va_start(args, fmt);
    zlog_info(psyslog_cat, fmt, args);
    va_end(args);
	return 0;
}
int zlog_debug_pro(const char *fmt, ...)
{
	va_list args;
    va_start(args, fmt);
    zlog_debug(psyslog_cat, fmt, args);
    va_end(args);
	return 0;
}
int zlog_warn_pro(const char *fmt, ...)
{
	va_list args;
    va_start(args, fmt);
    zlog_warn(psyslog_cat, fmt, args);
    va_end(args);
	return 0;
}
int zlog_notice_pro(const char *fmt, ...)
{
	va_list args;
    va_start(args, fmt);
    zlog_notice(psyslog_cat, fmt, args);
    va_end(args);
	return 0;
}
int zlog_error_pro(const char *fmt, ...)
{
	va_list args;
    va_start(args, fmt);
    zlog_error(psyslog_cat, fmt, args);
    va_end(args);
	return 0;
}
int zlog_fatal_pro(const char *fmt, ...)
{
	va_list args;
    va_start(args, fmt);
    zlog_fatal(psyslog_cat, fmt, args);
    va_end(args);
	return 0;
}

